﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum СпособыРасчетаУдержанийПоИЛ
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"ff8809b2-96eb-4b5d-8c66-dbf07ddda506\", \"Представление\":\"ПроцентомОтЗаработка\"}")]
		ПроцентомОтЗаработка = 0,//Процентом от заработка
		[EnumMember(Value = "{\"Ссылка\":\"8d7fb667-05c5-421f-96be-a8f250ab767f\", \"Представление\":\"ПроцентомОтЗаработкаСУчетомБольничныхЛистов\"}")]
		ПроцентомОтЗаработкаСУчетомБольничныхЛистов = 1,//Процентом от заработка с учетом больничных листов
		[EnumMember(Value = "{\"Ссылка\":\"53fab0a7-bb1e-423c-a73d-41e2ad4017a5\", \"Представление\":\"ФиксированнойСуммой\"}")]
		ФиксированнойСуммой = 2,//Фиксированной суммой
		[EnumMember(Value = "{\"Ссылка\":\"af5f4454-2bea-4b72-8965-110e77ea04df\", \"Представление\":\"КратноВеличинеПрожиточногоМинимума\"}")]
		КратноВеличинеПрожиточногоМинимума = 3,//Кратно величине прожиточного минимума
	}
	public static partial class СпособыРасчетаУдержанийПоИЛ_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ПроцентомОтЗаработка = new Guid("f0db668c-dd7d-06a5-4b5d-96ebff8809b2");//Процентом от заработка
		public static readonly Guid ПроцентомОтЗаработкаСУчетомБольничныхЛистов = new Guid("f2a8be96-ab50-7f76-421f-05c58d7fb667");//Процентом от заработка с учетом больничных листов
		public static readonly Guid ФиксированнойСуммой = new Guid("e2413da7-40ad-a517-423c-bb1e53fab0a7");//Фиксированной суммой
		public static readonly Guid КратноВеличинеПрожиточногоМинимума = new Guid("0e116589-ea77-df04-4b72-2beaaf5f4454");//Кратно величине прожиточного минимума
		public static СпособыРасчетаУдержанийПоИЛ Получить(this СпособыРасчетаУдержанийПоИЛ Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СпособыРасчетаУдержанийПоИЛ Получить(this СпособыРасчетаУдержанийПоИЛ Значение, Guid Ссылка)
		{
			if(Ссылка == ПроцентомОтЗаработка)
			{
				return СпособыРасчетаУдержанийПоИЛ.ПроцентомОтЗаработка;
			}
			else if(Ссылка == ПроцентомОтЗаработкаСУчетомБольничныхЛистов)
			{
				return СпособыРасчетаУдержанийПоИЛ.ПроцентомОтЗаработкаСУчетомБольничныхЛистов;
			}
			else if(Ссылка == ФиксированнойСуммой)
			{
				return СпособыРасчетаУдержанийПоИЛ.ФиксированнойСуммой;
			}
			else if(Ссылка == КратноВеличинеПрожиточногоМинимума)
			{
				return СпособыРасчетаУдержанийПоИЛ.КратноВеличинеПрожиточногоМинимума;
			}
			return СпособыРасчетаУдержанийПоИЛ.ПустаяСсылка;
		}
		public static byte[] Ключ(this СпособыРасчетаУдержанийПоИЛ Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СпособыРасчетаУдержанийПоИЛ Значение)
		{
			switch (Значение)
			{
				case СпособыРасчетаУдержанийПоИЛ.ПроцентомОтЗаработка: return ПроцентомОтЗаработка;
				case СпособыРасчетаУдержанийПоИЛ.ПроцентомОтЗаработкаСУчетомБольничныхЛистов: return ПроцентомОтЗаработкаСУчетомБольничныхЛистов;
				case СпособыРасчетаУдержанийПоИЛ.ФиксированнойСуммой: return ФиксированнойСуммой;
				case СпособыРасчетаУдержанийПоИЛ.КратноВеличинеПрожиточногоМинимума: return КратноВеличинеПрожиточногоМинимума;
			}
			return Guid.Empty;
		}
	}
}